A snapshot can be created to capture a state of a database at a particular point in time. A full backup of a database system includes a snapshot of the database and may be composed of large amounts of data (e.g., terabytes, petabytes, etc.). Performing a full backup of a database at frequent intervals requires large amounts of storage. To reduce the amount of storage required, an incremental backup of the database may be performed between full backups. An incremental backup includes a snapshot of the changes that have occurred to the system since the previous (full or incremental) backup. In addition to incremental backups, log backups may be performed for some databases. A log backup stores segments of the transaction log (hereinafter “log files”) for the database. The transaction log lists operations performed on the database files and the time at which the operations were performed. Thus, a log file includes the transactions occurring since the last (log, incremental or full) backup and the times at which the transactions occurred.
Full and incremental backups can be used to restore the database to the times at which the full or incremental backup was performed. A user may desire to restore the database to a point in time between full or incremental backups. In order to perform such a point-in-time restoration of the database, the nearest full or incremental backups are typically located. From the log backups, a user manually provides all of the log files between the closest full or incremental backups. A portion of these log files and the backups are then used to restore the database to the desired point in time.
Although a point-in-time restoration can be completed, manually providing the log files is time consuming and error prone. Selection of the log files typically requires user intervention, which is undesirable. Determining the appropriate log files and backups is complicated by the possibility of one or more restores having been performed on the database. The user not only selects the log files for the appropriate time period, but also determines the appropriate chain of restorations and backups from which to select the log files. Such a process is complicated, subject to errors and may require a significant amount of time. Moreover, a large number of log files may be provided if changes were made throughout the time between backups. Accordingly, an improved method for performing a point-in-time restoration is desired.